#pragma once
#include "TSound.h"
#include "TBasis2DStd.h"
#include "TSound.h"
#include "fmod.hpp"
#include "fmod_errors.h"

#define MAX_SOUND_COUNT 20
#define MAX_CHAR_COUNT 255

class GameSound : public TSingleton<GameSound>
{
public:
	enum E_GAMESOUND_TYPE
	{
		E_GAMESOUND_BGM = 0,
		E_GAMESOUND_EFFECT = 1,
		E_GAMESOUND_TYPE_MAX,
	};

	void GameSound::BGMVolUp();
	void GameSound::BGMVolDown();
	void GameSound::EFFECTVolUp();
	void GameSound::EFFECTVolDown();


	int m_Sindex[E_GAMESOUND_TYPE_MAX][MAX_SOUND_COUNT];
	char* m_szSoundDic[E_GAMESOUND_TYPE_MAX][MAX_SOUND_COUNT];
	friend class TSingleton<GameSound>;


	void Init();
	void Asound(E_GAMESOUND_TYPE eType, char* szFileName);
	//void VolumeControl(E_GAMESOUND_TYPE eType, float fVolume);
	//void Release();
	void InitSound(E_GAMESOUND_TYPE eType, int nIdx, char* szSoundFileName);

	//float GetVolume(E_GAMESOUND_TYPE eType);
	//float StopAll(E_GAMESOUND_TYPE eType);
	void Release();
public:
	GameSound(void);
	~GameSound(void);
};
